//=============================================================================

#ifndef AACTION_H
  #define AACTION_H

//=============================================================================

#include "aString.h"
#include "aVector.h"
#include "aList.h"

//=============================================================================

enum aanAct
{
  ACT_NONE = -128,
  ACT_PUSH,
};

//=============================================================================

class aActionPush
{
  public:
    aActionPush() : type(ACT_PUSH) {};
    ~aActionPush() {};

  public:
    const aanAct type;
    aVector n;
    aVector f;
    aVector from;
};

//=============================================================================

class aAction
{
  public:
    inline aanAct aaGetType()       {return type;}
    inline const void* aaGetData()  {return dataPtr;}

    aAction();
      void aaPrepareAction(const aActionPush& act);
    ~aAction();

  private:
      void aaClearAction();

  private:
    aanAct type;
    void* dataPtr;
};

//=============================================================================

#endif

//=============================================================================
